home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / public / SciAn / src / ScianSymbols.c < prev    next >
C/C++ Source or Header  |  1994-08-01  |  913b  |  54 lines

  1. /*ScianSymbols.c
  2.   Eric Pepke
  3.   19 January 1993
  4.  
  5.   Symbols system in Scian
  6. */
  7.  
  8. #include "Scian.h"
  9. #include "ScianTypes.h"
  10. #include "ScianErrors.h"
  11. #include "ScianSymbols.h"
  12.  
  13. typedef struct
  14.     {
  15.     Thing    thing;        /* flags and stuff */
  16.     NameTyp    symbol;        /* the actual symbol*/
  17.     } Symbol;
  18.  
  19. #ifdef PROTO
  20. ObjPtr NewSymbol(NameTyp id)
  21. #else
  22. ObjPtr NewSymbol(id)
  23. NameTyp id;
  24. #endif
  25. /*Creates a new symbol given integer type id*/
  26. {
  27.     Symbol *sym;
  28.  
  29.     sym = (Symbol *) NewObject(NULLOBJ, sizeof(Symbol) - sizeof(Obj));
  30.     if (!sym)
  31.     {
  32.         OMErr();
  33.         return NULLOBJ;
  34.     }
  35.     sym -> thing . flags = SYMBOL;
  36.     sym -> symbol = id;
  37.     return (ObjPtr) sym;
  38. }
  39.  
  40. #ifdef PROTO
  41. NameTyp GetSymbolID(ObjPtr sym)
  42. #else
  43. NameTyp GetSymbolID(sym)
  44. ObjPtr sym;
  45. #endif
  46. {
  47.     if (!sym || !IsSymbol(sym))
  48.     {
  49.     ReportError("GetSymbolID", "Not a symbol");
  50.         return 0;
  51.     }
  52.     return ((Symbol *) sym) -> symbol;
  53. }
  54.